var express = require('express');
var router = express.Router();

// 1. 引入数据库文件
const mongoose = require('mongoose');
const db = require('../db/db');
const users = require('../model/users')

/* GET home page. */
router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express' });
});

// 1. 自制接口

// 1.1 GET  获取用户列表
router.get('/users', (req, res) => {
  db(() => {
    // 使用 users 文档查询所有的用户数据
    users.find().exec((err, data) => {
      if (err) throw err;

      // 手动关闭
      mongoose.connection.close();
      // 拿到数据之后就返回
      setTimeout(() => {
        res.send({
          msg: '请求用户列表成功.',
          data
        })
      }, 5500)
    })
  })
})


router.get('/users/:id', (req, res) => {
  db(() => {
    // 使用 users 文档查询所有的用户数据
    users.findById(req.params.id).exec((err, data) => {
      if (err) throw err;

      // 手动关闭
      mongoose.connection.close();
      // 拿到数据之后就返回
      res.send({
        msg: '请求用户数据成功.',
        data
      })
    })
  })
})

// 1.2 POST 增加数据
router.post('/users', (req, res) => {
  // 添加的参数
  // console.log(req.body);
  db(() => {
    // 使用 users 文档查询所有的用户数据
    users.create(req.body, err => {
      if (err) throw err;

      // 手动关闭
      mongoose.connection.close();
      // 拿到数据之后就返回
      res.send({
        msg: '添加用户成功.'
      })
    })
  })
})

// 1.3 修改数据
router.put('/users/:id', (req, res) => {
  // 添加的参数
  // console.log(req.params);
  console.log(req.body);
  const { id } = req.params;
  db(() => {
    // 使用 users 文档查询所有的用户数据
    users.findByIdAndUpdate(id, req.body, err => {
      if (err) throw err;

      // 手动关闭
      mongoose.connection.close();
      // 拿到数据之后就返回
      res.send({
        msg: '修改用户成功.'
      })
    })
  })
})

// 1.4 删除数据
router.delete('/users/:id', (req, res) => {
  // 添加的参数
  // console.log(req.params);
  const { id } = req.params;
  db(() => {
    // 使用 users 文档查询所有的用户数据
    users.findByIdAndDelete(id, err => {
      if (err) throw err;

      // 手动关闭
      mongoose.connection.close();
      // 拿到数据之后就返回
      res.send({
        msg: '删除用户成功.'
      })
    })
  })
})


module.exports = router;
